23

» WarCraft 3 / Ломается система динамичной цены найма юнита

Похожие вопросы:

ответ
Закрываем вопрос, причина была в снятой галочке про "включение локальных данных"
Лучший вариант: Datamanager+EnableLocalFiles
ответ
Все функции прелоада замена на рид/врайт мемхака, и в любом случае проверь права администратора для варкрафта, например JNGP точно запущен с правами админа и всё норм, права на запись есть, а если вар запускаешь с обычными, то у него не будет прав для записи, файл прелоада не создасться как и writestring и дальше всё поедет...
MKDimon, Запусти от админа, отпишись
ответ
ладно. заработало.
не рабочий вариант
call SaveInteger(Hash,GetHandleId(GetTriggerUnit()),5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,GetHandleId(GetTriggerUnit()),5555) в другом триггере для проверки выгружаем
рабочий вариант
local integer id = GetHandleId(GetTriggerUnit())
call SaveInteger(Hash,id,5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,id,5555) в другом триггере для проверки выгружаем
Короче вернул обратно локалки, и все заработало. И почему первый вариант не работал. Ладно будут искать подводные камни. Наверное после чистой оптимизации что-то перестало работать. эх... придеться посравнивать. похоже старый код где то мб лучше. только времени потратил на методы тыка.
ответ
События на воскрешения юнита нет. Можно попробовать при касте воскрешения проверить всех мертвых юнитов вокруг кастера годных для воскрешения, а спустя 0.00 секунд проверить кто в группе мертвых ожил, хз. Тут только костылями выкручиваться либо делать свою систему воскрешения/воспользоваться южапи, если там есть соответствующая функция

или событие на воскрешение есть?

23

» Администрация XGM / Восстановить комментарий

Похожие вопросы:

ответ
Должно быть поправлено в связи с апгрейдом системы оценок

Lesnoi troll, теперь можно убирать оценки комментариев в течение 2 минут

23

» WarCraft 3 / Возможность поворота всей карты

Похожие вопросы:

ответ
Была прям один в один ситуация. Игра крашица скорее всего от того, что что bounds выходит за пределы карты. Оставляй отступ от краев.
и даже не границы карты, а границы обзора вродебы ломают все

попробуй rect создать на карте, чтобы он был внутри границы обзора. И bounds выставляй по нему.

23

» Администрация XGM / Ошибка при заходе

Похожие вопросы:

ответ
Сейчас решил перепроверить и вышла другая ошибка Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Проблема уже устранена

23

» WarCraft 3 / Задания в редакторе отобразить определенным игрокам

Похожие вопросы:

ответ
Событие:
Юнит умирает
Условие:
Количество типов юнитов "Казарма" равно 0 or тип юнита "Казарма" из мертв равно да
Количество типов юнитов "Ферма" равно 0 or тип юнита "Казарма" из мертв равно да
Количество типов юнитов "Олодом" равно 0 or тип юнита "Казарма" из мертв равно да
Событие:
Задание выполнено-показать блаблабла (не важно)
Я с этим согласен, но можно было б
Событие: каждые 0.05сек.
Условия
Кол-во тип юнита "Казармы" В ОБЛАСТИ равно 0
Кол-во тип юнита "Ферма" В ОБЛАСТИ равно 0
Кол-во тип юнита "Олодом" В ОБЛАСТИ равно 0
ОБЛАСТЬ создай и помести в неё все свои домики
Действие:
Твоё что ты там хочешь.....

Только проблема: я не помню есть ли такое условие..*(
ответ
The Dude, это несерьезно. Все вопросы описаны в большом количестве статей здесь, на нашем сайте - xgm.guru/p/wc3/articles. То, что перечисляешь не верх мастерства WE, а базовые знания. Материалов предостаточно. Успехов в обучении.
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Вроде бы удалось решить проблему самостоятельно. Ошибка действительно была элементарной - идентификатор не устраивал введённый туда заглавный символ, а я не знал об этом. Простите за беспокойство.
ответ
Я не особо разбираюсь в англоязычном варианте триггеров, но у вас вроде стоит "Удалить - последний брошенный предмет", вам нужно "Удалить - Предмет переносимый [герой] типа [название предмета]". Если мой руссификатор не влияет на последовательность пунктов в настройке, то вы использовали третью строчку, а вам нужна девятая. Там вы можете удалить конкретный предмет у конкретного же персонажа.

23

» WarCraft 3 / Вопрос по триггерной способности

Похожие вопросы:

ответ
Это стандартная способность феникса "пламя феникса"
ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
Как можно создать свою способность, если ты даже не умеешь юзать поиск ?
Приговариваешься к ликбезу, через статьи.
ответ
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
ответ
бафф у них меняется
Меняется - можно поставить свой бафф, что сделан на основе оригинальный. Естественно, нельзя сделать так, чтобы отравленные стрелы станили.
Стан только у баша.

23

» WarCraft 3 / Модель

Похожие вопросы:

ответ
Поиск по сайту, если не нашлось, сперва сюда:
Потом сюда:

В следующий раз за такие темы будут варны.
ответ
~8gabriel8:
Пересчитай границы, если не поможет, то приложи модель.
ответ
В 2 местах у разрушаемого объекта надо ставить модель импортированную.
ответ
Shakral, вот.

23

» WarCraft 3 / Система урона в варкрафте.

Похожие вопросы:

ответ
Ну как написано здесь:
Yeah, it is. Corrosive breath does nothing. The upgrade just gives the Chimera a siege attack.
Т.е. способность действительно ничего не делает. Возможно, она и делала что то на ранних версиях, но потом это убрали, а описания поправить забыли.
ответ
Система номинаций Orc Gladiator Revenge
Почему бы не сделать привязку к классу героя: танки не будут получать очки за исцеление, дд-шеры за полученный урон, а лекари за нанесенный урон. Тем самым, стату можно будет набивать исключительно выполняя свою роль.

23

» WarCraft 3 / Стаки предметов

Похожие вопросы:

ответ
Человек, который сам на вопросы отвечает, 6 уровень, уважаемый картодел, стыдно модуль такими вопросами засорять.
ответ
ну нажимаешь предмет там срабатывает тригерный спел который смотрит в инвенторе нужный паредмет высчитывает его количество по стакам дальше выставляет на месте каста нужного юнита
тут есть система увелечения хп,и функции увеличивающие и определяющие заряд предмета в тригах посмотрите

23

» WarCraft 3 / Оседлать

Похожие вопросы:

ответ
Берем любую пассивную способность и меняем в поле "Графика-цель" нам на нужную модель. Я заменил на "Адский дракон". А за основу взял способность "Аура выносливости". Теперь берем или создаем героя, добавляем ему нашу способность. Модель моего героя "Волшебница". Ставим на карту и проверяем.
Вот что у меня вышло:
Что-то по аналогии с этим?
ответ
Ну не обязательно строительство делать, достаточно дать морф с временем жизни как у яйца феникса, так будет проще.
Событие - юнит применил способность, условие - примененная способность = твоя способность, действие вручить морф яйца феникса и установить время жизни на 15 сек. Смотри как устроен феникс чародея крови.
Можно сделать полностью триггерно, вариантов уйма, можно вместо строительсва, сделать сразу после слияния промежуточного юнита, а ему настроить апгрейд в архонта и при применении слияния, автоматически начинать апгрейд в архонта.
ответ
При использовании этих способностей надо чтобы цель была рядом.
ответ
reaper1691, так в чем проблема? Морф, две формы героя, один конь, одна способность-пустышка отвечающая за выбор коня и запуск триггера, который коня скроет, а герою запустит морф через предмет-руну, еще одна способность-пустышка, которая отвечает за запуск триггера запускающего обратный морф, телепортацию коня к герою и отмену скрытия коня.

23

» WarCraft 3 / Список в JASS

Похожие вопросы:

ответ
FogModifierStart(CreateFogModifierRect(GetLocalPlayer(), FOG_OF_WAR_VISIBLE, bj_mapInitialPlayableArea, true, false))
Создаем модификатор видимости локально.
ответ
Alexey103, глобальную переменную не обязательно. Я бы вообще вместо переменной использовал "Triggering unit" или "Hero manipulating item".
ответ
Дик, переменную можно скормить этому триггеру через JASS или Lua, но событие запишется на основании значения переменной на момент добавления события - можно сколько угодно менять переменную после этого, но триггер будет работать только на того юнита который был записан в переменную на момент когда добавлялось событие. Возможно действие "добавить событие к триггеру" в ГУИ тоже так умеет.
ответ
xgm.guru/p/wc3/memoryhack/comments/7 Хак на память Warcraft3, 7 страница, упоминаются GetHeroAbilityFromList, SetHeroAbilityFromList
также xgm.guru/p/wc3/196378 memhack utils functions, упоминаются GetHeroAbilityFromList.
Буду тестировать по этим наработкам.

23

» WarCraft 3 / Можно ли как-то проверить расу юнита?

Похожие вопросы:

ответ
Свойства игрока - Кланы - Нестандартные кланы + Фикс. параметры игрока (ставим эти галочки и все будет работать).

23

» WarCraft 3 / Генератор декораций.

Похожие вопросы:

ответ
Чтобы выяснить, от чего конкретно фатал, отключай по одному типы декораций.
Я делал подобное, но вместо декораций использовал юнитов - мне нужно было отловить взаимодействие с ними (рубка деревьев, добыча камней, сбор ягод с кустов и т. д.).
Фатал происходил, когда я делал всё в одном триггере и сразу. Потом мне посоветовали уменьшить цикл, сделать перерыв в 0.01 с. и перезапускать триггер. Методом тыка определил максимальное количество, при котором не вылетает. Потом сделал с запасом, чтобы на слабых компах не критовало - и всё работает идеально.

23

» WarCraft 3 / Массивы и циклы

Похожие вопросы:

ответ
что именно в циклах тебе непонятно?
ответ
Ты не обнуляешь переменную, а удаляешь юнита из игры. Запись верная.
Обнуление будет таким.
set udg_EfectRudnik[bj_forLoopAIndex] = null
Но нет смысла обнулять глобалки.

Группы - это тоже объект, как и юнит, вот только юнит имеет визуальную составляющую (его видно глазами), а группа нет.
Изначально массив групп создаёт группу (новая группа всегда пустая) для ячеек 0, ..., размер_массива (указывается в настройках переменной). Во всех остальных ячейках групп просто нет, там нули.
Если группа больше не нужна, её нужно уничтожить (call DestroyGroup(g)), в GUI такого действия нет. После этого группы не существует. Если попытаться что-то добавить в эту группу через переменную, что всё ещё на неё ссылается, ничего не произойдёт.
GUI действия типа "Выбрать юнитов в области" создают новую группу каждый раз, что может вызывать утечки. Потому такие вызовы лучше всего записывать в переменную, делать необходимые действия, а потом уничтожать (не очищать!).
ответ
Extremator:
А что мешает отслеживать изменение содержимого инвентаря? Т.е. получение предмета, который подходит для манипуляций, после чего поочерёдно проверять только те списки, в которых этот предмет участвует... ну и делать что надо
Так ведь я так и делаю. Юнит получает предмет, содержимое его инвентаря записывается в таблицу. И вот, я не могу придумать по какой схеме мне сравнить эту таблицу со списками рецептов. Вот есть TransfigurationData.List[ID] в нём списки TransfigurationData.List[ID][ID1,2,3,4,5....]
Нужно как-то сделать проверку есть ли в списке TransfigurationData.List[0][1](как пример) то что в инвентаре героя, если да то убрать их и выдать TransfigurationData.Result[Тот же ID что и у List] :)

О ес, оно заработало я сам всё решил. Спасибо за внимание :)
ответ
чтож


оказывается допустил ошибку при высчитывании

Нельзя
if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMaxCounter]) == CommandsList[CommandsListMaxCounter] then //-cam, -Cam
// высчитывать Значение Цикла CommandsListMaxCounter внутри переменной CommandsListSubstringEnd
endif
он подберет Индекс CommandsListMaxCounter и будет проверять CommandsListSubstringEnd на наличие Меньшего Значения начиная с 1 до
CommandsListMax
его сразу надо высчитывать чтобы значения цикла не высчитывались

if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMax]) == CommandsList[CommandsListMaxCounter] then
так должно выглядеть

отработает 1 раз для CommandsList с привязкой к СommandsListSubstringEnd

Centyrion, если удалить комментарии, то у тебя пустое условие.
Спасибо! воспользуюсь ссылкой
ответ
циклом медленнее